public class Bank implements Runnable {
	   int money=200;
	      public void setMoney(int n) {
		            money=n;
			       }
	         public void run() {
			       if(Thread.currentThread().getName().equals("会计")) 
				                saveOrTake(300);
			             else if(Thread.currentThread().getName().equals("出纳"))
					              saveOrTake(150);;
				        }
		     public synchronized void saveOrTake(int amount) { //存取方法
			           if(Thread.currentThread().getName().equals("会计")) {
					            for(int i=1;i<=3;i++) { 
							                 money=money+amount/3;      //每存入amount/3，稍歇一下
									              System.out.println(Thread.currentThread().getName()+
												                                     "存入"+amount/3+",帐上有"+money+"万,休息一会再存");
										                   try { Thread.sleep(1000);  //这时出纳仍不能使用saveOrTake方法 
													                }                       
												                catch(InterruptedException e){}
														         }
						          }
				         else if(Thread.currentThread().getName().equals("出纳")) {
						          for(int i=1;i<=3;i++) { //出纳使用存取方法取出60
								               money=money-amount/3;   //每取出amount/3，稍歇一下
									                    System.out.println(Thread.currentThread().getName()+
													                                   "取出"+amount/3+"帐上有"+money+"万,休息一会再取");
											                 try { Thread.sleep(1000);       //这时会计仍不能使用saveOrTake方法
														              }                         
													              catch(InterruptedException e){}
														               }
							        }
					    }
}
